home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -screenplay- / hd_installers / whdigames / whdigamesc-d / cannonfodder2.lha / CannonFodder2 Install / Cannon2 next >
Text File  |  1997-02-04  |  5KB  |  259 lines

  1. ;----------------------------
  2. ; BJ (02.02.97)
  3. ; tabsize=4
  4. ;----------------------------
  5. ;****************************
  6.  
  7. (set #readme-file "README")    ;name of readme file
  8. (set #slave-name "cf2.slave")    ;optional !
  9. (set #cleanup "")            ;files to delete after install
  10. (set #CI_drive "DF0:")        ;default source drive
  11.  
  12. ;****************************
  13. (if
  14.     #slave-name
  15.     ("")
  16.     (set #slave-name ("%s.slave" @app-name))
  17. )
  18. ;****************************
  19. ;----------------------------
  20. ; Checks if given program is reachable via the path
  21. ; parameters:
  22. ;        #program        - to check
  23. ; result:
  24. ;        #instok            - 0 if not found
  25.  
  26. (procedure P_chkinst
  27.     (if
  28.         (= 0 (run ("cd SYS:\nWhich %s" #program)))
  29.         (set #instok 1)
  30.         (set #instok 0)
  31.     )
  32. )
  33.  
  34. ;----------------------------
  35. ; Checks if given program is reachable via the path
  36. ;  if not reachable tries to install from local to RAM:
  37. ;   if fails abort install
  38. ; parameters:
  39. ;        #program        - to check
  40.  
  41. (procedure P_chkrun
  42.     (P_chkinst)
  43.     (if
  44.         (= #instok 0)
  45.         (
  46.             (if
  47.                 (exists #program)
  48.                 (copyfiles
  49.                     (help @copyfiles-help)
  50.                     (source #program)
  51.                     (dest "RAM:")        ;should always be in the path
  52.                 )
  53.                 (if
  54.                     (exists ("//c/%s" #program))        ;on installation package
  55.                     (copyfiles
  56.                         (help @copyfiles-help)
  57.                         (source ("//c/%s" #program))
  58.                         (dest "RAM:")        ;should always be in the path
  59.                     )
  60.                     (abort ("You must install %s first !" #program))
  61.                 )
  62.             )
  63.             (set #cleanup ("RAM:%s %s" #program #cleanup))
  64.         )
  65.     )
  66. )
  67.  
  68. ;----------------------------
  69.  
  70. (procedure P_install
  71. (
  72. (set #sver (getversion #source-file))
  73. (if
  74.     (exists #dest-file)
  75.     (
  76.         (set #dver (getversion #dest-file))
  77.         (if    (>= #sver #dver)
  78.             (
  79.                 (if
  80.                     (= @user-level 2)
  81.                     (message ("\nnow installing\n\n\"%s\" %ld.%ld\n\nover\n\n\"%s\" %ld.%ld" #source-file (/ #sver 65536) (BITAND #sver 65535) #dest-file (/ #dver 65536) (BITAND #dver 65535)))
  82.                 )
  83.                 (copyfiles
  84.                     (help @copyfiles-help)
  85.                     (source #source-file)
  86.                     (dest (pathonly #dest-file))
  87.                     (newname (fileonly #dest-file))
  88.                 )
  89.             )
  90.         )
  91.     )
  92.     (
  93.                 (if
  94.                     (= @user-level 2)
  95.                     (message ("\nnow installing\n\n\"%s\" %ld.%ld\n\nto\n\n\"%s\"" #source-file (/ #sver 65536) (BITAND #sver 65535) #dest-file ))
  96.                 )
  97.                 (copyfiles
  98.                     (help @copyfiles-help)
  99.                     (source #source-file)
  100.                     (dest (pathonly #dest-file))
  101.                     (newname (fileonly #dest-file))
  102.                 )
  103.     )
  104. )
  105. )
  106. )
  107.  
  108. ;****************************
  109.  
  110. (if
  111.     (exists #readme-file)
  112.     (if
  113.         (= 0 (run ("SYS:Utilities/Multiview %s" #readme-file)))
  114.         ("")
  115.         (run ("SYS:Utilities/More %s" #readme-file))
  116.     )
  117. )
  118.  
  119.  
  120. ;install whdload if available
  121. (set #file "WHDLoad")
  122. (if
  123.     (exists #file)
  124.     (
  125.         (set #source-file #file)
  126.         (set #dest-file   (tackon "C:" #file))
  127.         (P_install)
  128.     )
  129. )
  130.  
  131.  
  132. ;check if WHDLoad is installed
  133. (set #program "WHDLoad")
  134. (P_chkinst)
  135. (if
  136.     (= #instok 0)
  137.     (abort "You must install WHDLoad first !")
  138. )
  139.  
  140. (set @default-dest
  141. (askdir
  142.     (prompt ("Where should \"%s\" installed ?\nA drawer \"%s\" will automatically created." @app-name @app-name))
  143.     (help @askdir-help)
  144.     (default @default-dest)
  145.     (disk)
  146. )
  147. )
  148.  
  149. (set #dest (tackon @default-dest @app-name))
  150.  
  151. ;if anything similar exist delete it
  152. (if
  153.     (exists #dest)
  154.     (run ("Delete %s %s.info all" #dest #dest))
  155. )
  156.  
  157. (makedir #dest
  158.     (help @makedir-help)
  159.     (infos)
  160. )
  161.  
  162. ;----------------------------
  163.  
  164. (copyfiles
  165.     (help @copyfiles-help)
  166.     (source #slave-name)
  167.     (dest #dest)
  168. )
  169.  
  170. (copyfiles
  171.     (help @copyfiles-help)
  172.     (source ("%s.inf" @app-name ))
  173.     (newname ("%s.info" @app-name ))
  174.     (dest #dest)
  175. )
  176.  
  177. (if
  178.     (exists #readme-file)
  179.     (copyfiles
  180.         (help @copyfiles-help)
  181.         (source #readme-file)
  182.         (dest #dest)
  183.     )
  184. )
  185.  
  186. (makedir 
  187.     (tackon #dest "save")
  188.     (help @makedir-help)
  189. )
  190.  
  191. (makedir 
  192.     (tackon #dest "data")
  193.     (help @makedir-help)
  194. )
  195.  
  196. (set #dest (tackon #dest "data"))
  197.  
  198. ; in expert mode ask for source drive
  199. (if
  200.     (= @user-level 2)
  201.     (set #CI_drive
  202.         (askstring
  203.             (prompt "Select source drive for diskimages")
  204.             (default #CI_drive)
  205.             (help @askstring-help)
  206.         )
  207.     )
  208. )
  209.  
  210. ;----------------------------
  211. ; Wait for right disk, and copy all to #dest
  212. ; parameters:
  213. ;        #DR_diskno        - DiskNumber
  214. ;        #CI_drive        - DriveToReadFrom
  215.  
  216. (procedure P_diskreq
  217.     (message ("\nInsert \"%s\"\n\nDisk %ld\n\ninto drive %s !" @app-name #DR_diskno #CI_drive))
  218.     (if
  219.         (exists ("%sdisk%ld" #CI_drive #DR_diskno))
  220.         ("")
  221.         (P_diskreq)
  222.     )
  223. )
  224.  
  225.  
  226. (set #DR_diskno 1)
  227. (P_diskreq)
  228. (copyfiles
  229.     (help @copyfiles-help)
  230.     (source ("%s" #CI_drive))
  231.     (dest #dest)
  232.     (pattern "~(disk1|mapm#?|s|cf2.rel|ssboot)")
  233. )
  234.  
  235. (set #DR_diskno 2)
  236. (P_diskreq)
  237. (copyfiles
  238.     (help @copyfiles-help)
  239.     (source ("%s" #CI_drive))
  240.     (dest #dest)
  241.     (pattern "~(disk2)")
  242. )
  243.  
  244. (set #DR_diskno 3)
  245. (P_diskreq)
  246. (copyfiles
  247.     (help @copyfiles-help)
  248.     (source ("%s" #CI_drive))
  249.     (dest #dest)
  250.     (pattern "~(disk3|hi#?|ic#?|mapm1.spt|morp#?|ps#?|ra#?)")
  251. )
  252.  
  253. ;----------------------------
  254.  
  255. (run ("cd %s\nDelete %s ALL QUIET FORCE" #dest #cleanup))    ;delete all temporary files
  256.  
  257. (exit)
  258.  
  259.